package com.deuwise.common.utils;

/**
 * <pre>
 * 全局异常码
 * </pre>
 * <small> 2018年4月5日 | Aron</small>
 * @author chenwenchao
 * @date 2018-11-08
 */
public enum EnumErrorCode {

    /**
     * 成功
     */
    ok(200, "请求成功")

    /**
     * 未知错误
     */
    , unknowFail(500, "未知错误")

    /**
     * 参数校验异常
     */
    , illegalArgument(400, "参数校验异常")
    /**
     * 页面不存在
     */
    , pageNotFound(404, "页面不存在")
    /**
     * 未授权
     */
    , notAuthorization(405, "未授权")

    /**
     * 未授权
     */
    , statusNoOn(406, "用户被禁用")

    /**
     * 记录已存在
     */
    , duplicateKeyExist(40000, "记录已存在")

    /**
     * 文件上传错误
     */
    , FileUploadGetBytesError(40200, "文件上传错误")
    /**
     * 文件上传错误
     */
    , FileUploadError(40201, "文件上传错误")
    /**
     * 包含下级部门,不允许修改
     */
    , deptUpdateErrorExistChilds(40300, "包含下级部门,不允许修改")

    /**
     * 包含用户,不允许删除
     */
    , deptDeleteErrorExistUsers(40301, "包含用户,不允许删除")

    /**
     * 用户或密码错误
     */
    , userLoginFail(40401, "用户或密码错误")
    /**
     * 超级管理员的账号不允许直接重置
     */
    , userUpdatePwd4adminNotAllowed(40402, "超级管理员的账号不允许直接重置！")
    
    
    // API
    /**
     * 用户名或密码错误
     */
    , apiAuthorizationLoginFailed(44000, "用户名或密码错误")
    /**
     * token生成失败
     */
    , apiAuthorizationSignFailed(44000, "token生成失败")
    /**
     * token不合法
     */
    , apiAuthorizationInvalid(44001, "token不合法")
    /**
     * token已注销
     */
    , apiAuthorizationLoggedout(44002, "token已注销")
    /**
     * token已过期
     */
    , apiAuthorizationExpired(44003, "token已过期")
    /**
     * token认证失败
     */
    , apiAuthorizationFailed(44004, "token认证失败")

    /**
     * 短信发送失败
     */
    , apiSmsSendFailed(44100, "短信发送失败")
    /**
     * 短信发送失败
     */
    , apiSmsSendFailed4ContentNull(44101, "短信发送失败")
    /**
     * 短信验证码错误
     */
    , apiSmsCodeInvalid(44110, "短信验证码错误")
    /**
     * 无权访问
     */
    , permissionInvalid(44111, "无权访问"),
    /**
     * 无权访问
     */
     SystemInvalid(403, "无权访问")
    ;

    private int code;
    private String msg;

    EnumErrorCode(int code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public int getCode() {
        return code;
    }

    public String getCodeStr() {
        return code + "";
    }

    public void setCode(int code) {
        this.code = code;
    }

    public String getMsg() {
        return msg;
    }

    public EnumErrorCode setMsg(String msg) {
        this.msg = msg;
        return this;
    }

    public static String getMsgByCode(int code) {
        EnumErrorCode[] values = EnumErrorCode.values();
        for (EnumErrorCode ec : values) {
            if (ec.code == code) {
                return ec.msg;
            }
        }
        return "";
    }

    /**
     * 
     * <pre>
     * </pre>
     * 
     * <small> Aron | 2017-09-05</small>
     * 
     * @param args
     */


    
}
